#include <shell/shell.h>
#include <shell/cmd_lotes.h>
#include <shell/teclado.h>
#include <shell/sys_video.h>
#include <kernel/libk/libk.h>
#include <kernel/libk/string.h>
/******************************************************************************
Funcion:
Descripcion:
Recibe:   
Devuelve: 
*******************************************************************************/
void vFnMenuLotes(int iArgumento, int iArgumento2, int iArgumento3)
{
	char strSubCMD[16];

	iFnCopiaCadena(strSubCMD, (char*)iArgumento);
	
	if (strSubCMD[0] != '\0'){		//Si recibio parametro. //revisar si funciona correctamente...
		if(iFnCompararCadenas(strSubCMD,"ayuda")==1){
			vFnSubCmdLoteAyuda();
		} else if(iFnCompararCadenas(strSubCMD,"cargar")==1){
			vFnSubCmdLoteCargar(iArgumento2);
		} else if(iFnCompararCadenas(strSubCMD,"editar")==1){
			vFnSubCmdLoteEditar(iArgumento2);
		} else if(iFnCompararCadenas(strSubCMD,"eliminar")==1){
			vFnSubCmdLoteEliminar(iArgumento2);
		} else if(iFnCompararCadenas(strSubCMD,"guardar")==1){
			vFnSubCmdLoteGuardar(iArgumento2, iArgumento3);
		} else if(iFnCompararCadenas(strSubCMD,"iniciar")==1){
			vFnSubCmdLoteIniciar(iArgumento2);
		} else if(iFnCompararCadenas(strSubCMD,"ls")==1){
			vFnSubCmdLoteLs();
		} else if(iFnCompararCadenas(strSubCMD,"mostrar")==1){
			vFnSubCmdLoteMostrar(iArgumento2);
		} else if(iFnCompararCadenas(strSubCMD,"nuevo")==1){
			vFnSubCmdLoteNuevo();
		} else if(iFnCompararCadenas(strSubCMD,"pausar")==1){
			vFnSubCmdLotePausar();		
		} else if(iFnCompararCadenas(strSubCMD,"reanudar")==1){
			vFnSubCmdLoteReanudar();					
		} else {
			vFnImprimir("\n Uso incorrecto, tipee [lote ayuda] o [lote] para ver las opciones disponibles");
		}
	} else {
	    vFnImprimir( "\n uso: lote [subcomando] [parametros]"
			 "\n subcomandos: "
		      	 "\n  ayuda"
		         "\n  cargar [nombre_archivo]"
		         "\n  editar [ID]"
		         "\n  eliminar [ID]"
				 "\n  guardar [ID] [nombre_archivo]"
				 "\n  iniciar [ID]"
				 "\n  ls"		
				 "\n  mostrar [ID]"		
				 "\n  nuevo"
				 "\n  pausar"		
				 "\n  reanudar"		
		         );
	}
}
/******************************************************************************
Funciónes: Subcomandos de lotes
Descripción: permite la creacion de lotes de procesos para ejecutar, cargarlos, 
			editarlos, guardarlos, mostrarlos, pausar y reanudar muestras

Recibe:   parametros necesarios para cada subcomando.
Devuelve: nada

Fecha última modificación: 22/08/2009
******************************************************************************/
void vFnSubCmdLoteAyuda(){
	vFnImprimir( "\n uso: lote [subcomando] [parametros]"
				 "\n subcomandos: "
		      	 "\n  ayuda"
		         "\n  cargar [nombre_archivo]"
		         "\n  editar [ID]"
		         "\n  eliminar [ID]"
				 "\n  guardar [ID] [nombre_archivo]"
				 "\n  iniciar [ID]"
				 "\n  ls"		
				 "\n  mostrar [ID]"		
				 "\n  nuevo"
				 "\n  pausar"		
				 "\n  reanudar"		
		         );
}
/******************************************************************************
Funcion:
Descripcion:
Recibe:   
Devuelve: 
*******************************************************************************/
void vFnSubCmdLoteCargar(int iArg){
	char strPar[16];

	iFnCopiaCadena(strPar, (char*)iArg);
	if (strPar[0] != '\0'){		//Si recibio parametro. //revisar si funciona correctamente...
		vFnImprimir("\nTODO lote cargar");//inserte su comando aqui usando [strPar] como argumento
	}
	else{
		vFnImprimir("\nIngrese el nombre del archivo de lotes!");
	}
}
/******************************************************************************
Funcion:
Descripcion:
Recibe:   
Devuelve: 
*******************************************************************************/
void vFnSubCmdLoteEditar(int iArg){
	char strPar[16];

	iFnCopiaCadena(strPar, (char*)iArg);
	
	if (strPar[0] != '\0'){		//Si recibio parametro. //revisar si funciona correctamente...
		vFnImprimir("\nTODO lote editar");//inserte su comando aqui usando [strPar] como argumento
	}
	else{
		vFnImprimir("\nIngrese el ID del lote!");
	}
}
/******************************************************************************
Funcion:
Descripcion:
Recibe:   
Devuelve: 
*******************************************************************************/
void vFnSubCmdLoteEliminar(int iArg){
	char strPar[16];

	iFnCopiaCadena(strPar, (char*)iArg);
		
	if (strPar[0] != '\0'){		//Si recibio parametro. //revisar si funciona correctamente...
		vFnImprimir("\nTODO lote eliminar");//inserte su comando aqui usando [strPar] como argumento
	}
	else{
		vFnImprimir("\nIngrese el ID del lote!");
	}
}
/******************************************************************************
Funcion:
Descripcion:
Recibe:   
Devuelve: 
*******************************************************************************/
void vFnSubCmdLoteGuardar(int iArg, int iArg2){
	char strId[16];
	char strNombreArch[16];
	
	iFnCopiaCadena(strId, (char*)iArg);
	iFnCopiaCadena(strNombreArch, (char*)iArg2);
	
	if (strId[0] != '\0'){		//Si recibio parametro. //revisar si funciona correctamente...
		if (strNombreArch[0] != '\0'){	//Si recibio parametro. //revisar si funciona correctamente...
			vFnImprimir("\nId lote: %s Guardar en: %s",strId,strNombreArch);
			vFnImprimir("\nTODO lote guardar");//inserte su comando aqui usando [strId] y [strNombreArch] como argumento
		}
		else{
			vFnImprimir("\nIngrese el nombre de archivo donde guardar el lote!");
		}
	}
	else{
		vFnImprimir("\nIngrese el ID del lote!");
	}
}
/******************************************************************************
Funcion:
Descripcion:
Recibe:   
Devuelve: 
*******************************************************************************/
void vFnSubCmdLoteIniciar(int iArg){
	char strPar[16];

	iFnCopiaCadena(strPar, (char*)iArg);
	
	if (strPar[0] != '\0'){		//Si recibio parametro. //revisar si funciona correctamente...
		vFnImprimir("\nTODO lote iniciar");//inserte su comando aqui usando [strPar] como argumento
	}
	else{
		vFnImprimir("\nIngrese el ID del lote!");
	}
}
/******************************************************************************
Funcion:
Descripcion:
Recibe:   
Devuelve: 
*******************************************************************************/
void vFnSubCmdLoteLs(){
	vFnImprimir("\nTODO Lote LS");//inserte su comando aqui
}
/******************************************************************************
Funcion:
Descripcion:
Recibe:   
Devuelve: 
*******************************************************************************/
void vFnSubCmdLoteMostrar(int iArg){
	char strPar[16];

	iFnCopiaCadena(strPar, (char*)iArg);
	
	if (strPar[0] != '\0'){		//Si recibio parametro. //revisar si funciona correctamente...
		vFnImprimir("\nTODO lote eliminar");//inserte su comando aqui usando [strPar] como argumento
	}
	else{
		vFnImprimir("\nIngrese el ID del lote!");
	}
}
/******************************************************************************
Funcion:
Descripcion:
Recibe:   
Devuelve: 
*******************************************************************************/
void vFnSubCmdLoteNuevo(){
	vFnImprimir("\nTODO Lote Nuevo");//inserte su comando aqui
}
/******************************************************************************
Funcion:
Descripcion:
Recibe:   
Devuelve: 
*******************************************************************************/
void vFnSubCmdLotePausar(){
	vFnImprimir("\nTODO Lote pausar");//inserte su comando aqui
}
/******************************************************************************
Funcion:
Descripcion:
Recibe:   
Devuelve: 
*******************************************************************************/
void vFnSubCmdLoteReanudar(){
	vFnImprimir("\nTODO Lote reanudar");//inserte su comando aqui
}

